/**
 * Created by qunxing.du on 2016/7/26.
 * Copyright 2016 汉威.智慧环保事业部 Limited.
 * All rights reserved.
 */
package com.hw.one.collect.memento;

import java.util.Map;

/**
 * 备忘录负责人，负责保存备忘录对象
 */
public abstract class CareTaker<K, V> {
    /**
     * 添加备忘录
     *
     * @param k
     * @param v
     */
    public abstract void add(K k, V v);

    /**
     * 查询备忘录
     *
     * @param k
     * @return
     */
    public abstract V get(K k);

    /**
     * 获取所有Memento
     * @return
     */
    public abstract Map<K,V> getAll();

    /**
     * 移除备忘录
     *
     * @param k
     */
    public abstract void remove(K k);

    /**
     * 更新备忘录
     *
     * @param k
     * @param v
     */
    public abstract void update(K k, V v);
    /**
     * 保存或更新
     *
     * @param k
     * @param v
     */
    public abstract void saveOrUpdate(K k,V v);
}
